import time
import random

from aiogram import Bot, Dispatcher, executor
from aiogram.types import Message
from aiogram.types import CallbackQuery
from aiogram.dispatcher.filters import Command
import asyncio

import config
from keyboard import inline_keyboard
from parser import main as parser


bot = Bot(token=config.token)
dp = Dispatcher(bot)


async def send_message_to_admin(dp):

    """ Отправляем уведомление о запуске бота """

    text = 'Бот запущен'
    await bot.send_message(chat_id=config.admin_id, text=text)


@dp.message_handler(Command('go'))
async def well_what(message: Message):

    """ Узнаем что будем делать """

    text = 'Ищем новый заказ?'

    await message.answer(text, reply_markup=inline_keyboard.start)


@dp.callback_query_handler(text_contains='yes')
async def start_browsing(call: CallbackQuery):

    """ Начинаем просматривать новые заказы """

    launch_time = time.ctime(time.time())
    count = 0

    while True:

        data, how_long_to_wait, count= parser.main(count, launch_time)          # Запускаем парсер
        data[-1].quit()                                                   # Закрываем браузер

        if 'Новых заказов нет' in data[0]:              # Если новых заказов нет

            await call.message.answer(text='Новых заказов нет')

            await asyncio.sleep(float(how_long_to_wait))

            continue

        for link in data[1]:                            # Если есть новые заказы

            await call.message.answer(text=link)

            time.sleep(.5)


# ТОЧКА ВХОДА

if __name__ == '__main__':

    executor.start_polling(dp, on_startup=send_message_to_admin)
